package jmine.tec.aom.domain.impl;

import jmine.tec.aom.si.PropertyTypeSystemIdentifier;

/**
 * The basic {@link jmine.tec.aom.domain.PropertyType} available in this component.
 * <p>
 * The database id's for those types are non-sequencial for historical reasons.
 * 
 * @author jrenaut
 */
public enum BasePropertyTypes implements PropertyTypeSystemIdentifier {
    DOUBLE(0L), INTEGER(1L), BOOLEAN(2L), STRING(3L), DATE(4L), BIG_DECIMAL(5L), ENUM(15L), ENTITY(17L);

    /**
     * @param id the database id of the given {@link jmine.tec.aom.domain.PropertyType}
     */
    private BasePropertyTypes(Long id) {
        this.id = id;
    }

    private final Long id;

    /**
     * {@inheritDoc}
     */
    public Long getSystemId() {
        return this.id;
    }

}
